Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / scripts / lib / frontmatter.js

Displaying Raw • Download

scripts/lib/frontmatter.js feat/node-list (c099d5ce) Text, 1.59 KB

Ta5d6ff"use strict"Tb4b4b4;

Tff7b72const Te6edf3fs Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"fs"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3path Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"path"Tb4b4b4)Tb4b4b4;

Tff7b72const Te6edf3FM_RE Tff7b72= Ta5d6ff/^---\n([\s\S]*?)\n---\n/Tb4b4b4;

T8b949e/**
* Parse YAML-ish frontmatter from a markdown string.
* Returns { fields: { key: string }, body: string, raw: string }.
* `fields` maps lowercase keys to their raw string values (no YAML arrays).
*/
Tff7b72function Te6edf3parseFrontmatterTb4b4b4(Te6edf3contentTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3match Tff7b72= Te6edf3contentTb4b4b4.Te6edf3matchTb4b4b4(Te6edf3FM_RETb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3matchTb4b4b4) Tff7b72return Tb4b4b4{ Te6edf3fieldsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3bodyTff7b72: Te6edf3contentTb4b4b4, Te6edf3rawTff7b72: Ta5d6ff"" Tb4b4b4}Tb4b4b4;

Tff7b72const Te6edf3raw Tff7b72= Te6edf3matchTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72const Te6edf3body Tff7b72= Te6edf3contentTb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3matchTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3fields Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;

Tff7b72for Tb4b4b4(Tff7b72const Te6edf3line Tff7b72of Te6edf3rawTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"\n"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3kv Tff7b72= Te6edf3lineTb4b4b4.Te6edf3matchTb4b4b4(Ta5d6ff/^(\w[\w_-]*):\s*(.*)/Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3kvTb4b4b4) Te6edf3fieldsTb4b4b4[Te6edf3kvTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4] Tff7b72= Te6edf3kvTb4b4b4[T79c0ff2Tb4b4b4]Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tff7b72return Tb4b4b4{ Te6edf3fieldsTb4b4b4, Te6edf3bodyTb4b4b4, Te6edf3raw Tb4b4b4}Tb4b4b4;
Tb4b4b4}

T8b949e/** Discover all .md page slugs under docs/{section}/ */
Tff7b72function Te6edf3discoverSlugsTb4b4b4(Te6edf3docsDirTb4b4b4, Te6edf3sectionTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3dir Tff7b72= Te6edf3pathTb4b4b4.Te6edf3joinTb4b4b4(Te6edf3docsDirTb4b4b4, Te6edf3sectionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fsTb4b4b4.Te6edf3existsSyncTb4b4b4(Te6edf3dirTb4b4b4)Tb4b4b4) Tff7b72return Tff7b72new Tffa657SetTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72new Tffa657SetTb4b4b4(
Te6edf3fsTb4b4b4.Te6edf3readdirSyncTb4b4b4(Te6edf3dirTb4b4b4)
Tb4b4b4.Te6edf3filterTb4b4b4(Te6edf3f Tb4b4b4=> Te6edf3fTb4b4b4.Te6edf3endsWithTb4b4b4(Ta5d6ff".md"Tb4b4b4)Tb4b4b4)
Tb4b4b4.Te6edf3mapTb4b4b4(Te6edf3f Tb4b4b4=> Te6edf3fTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\.md$/Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/** Iterate all doc pages, calling fn(filePath, slug, section) */
Tff7b72function Te6edf3forEachDocPageTb4b4b4(Te6edf3docsDirTb4b4b4, Te6edf3fnTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3section Tff7b72of Tb4b4b4[Ta5d6ff"user"Tb4b4b4, Ta5d6ff"developer"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3dir Tff7b72= Te6edf3pathTb4b4b4.Te6edf3joinTb4b4b4(Te6edf3docsDirTb4b4b4, Te6edf3sectionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fsTb4b4b4.Te6edf3existsSyncTb4b4b4(Te6edf3dirTb4b4b4)Tb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3file Tff7b72of Te6edf3fsTb4b4b4.Te6edf3readdirSyncTb4b4b4(Te6edf3dirTb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Te6edf3f Tb4b4b4=> Te6edf3fTb4b4b4.Te6edf3endsWithTb4b4b4(Ta5d6ff".md"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3sortTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3fnTb4b4b4(Te6edf3pathTb4b4b4.Te6edf3joinTb4b4b4(Te6edf3dirTb4b4b4, Te6edf3fileTb4b4b4)Tb4b4b4, Te6edf3fileTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\.md$/Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4, Te6edf3sectionTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Te6edf3moduleTb4b4b4.Te6edf3exports Tff7b72= Tb4b4b4{ Te6edf3parseFrontmatterTb4b4b4, Te6edf3discoverSlugsTb4b4b4, Te6edf3forEachDocPage Tb4b4b4}Tb4b4b4;

Served by rngit 1.4.2 - Generated in 0.07s